package com.css.fxfzypg.modules.baseData.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.handler.inter.IExcelDataModel;
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import com.css.fxfzypg.base.attachment.entity.AttachmentInfoEntity;
import com.css.fxfzypg.modules.baseData.entity.EarthquakeDisasterEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author y1fan
 * @create 2022-08-25 16:15
 */
@Data
public class EarthquakeDisasterVO implements IExcelDataModel, IExcelModel {
    /**
     * id
     */
    private String dedId;

    /**
     * 地震事件名称（简称）
     */
    @Excel(name = "地震事件名称（简称）")
    @NotBlank(message = "缺失")
    private String dedName;

    /**
     * 参考位置
     */
    @Excel(name = "参考位置")
    @NotBlank(message = "缺失")
    private String dedLocation;

    /**
     * 发生时刻
     */
    @Excel(name = "发生时刻")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @NotNull(message = "缺失")
    private Date dedTime;

    /**
     * 发生时间
     */
    @Excel(name = "发生时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    //@NotNull(message = "缺失")
    private Date dedHour;

    /**
     * 宏观震中
     */
    @Excel(name = "宏观震中")
    @NotBlank(message = "缺失")
    private String dedMacroscopicEpicenter;

    /**
     * 经度
     */
    @Excel(name = "经度（°）")
    @NotNull(message = "缺失")
    private BigDecimal dedLongitude;

    /**
     * 纬度
     */
    @Excel(name = "纬度（°）")
    @NotNull(message = "缺失")
    private BigDecimal dedLatitude;

    /**
     * 震级
     */
    @Excel(name = "震级")
    @NotNull(message = "缺失")
    private BigDecimal dedEarthquake;

    /**
     * 震源深度
     */
    @Excel(name = "震源深度")
    @NotNull(message = "缺失")
    private BigDecimal dedDepth;

    /**
     * 最高烈度
     */
    @Excel(name = "最高烈度")
    @NotBlank(message = "缺失")
    private String dedMaximumIntensity;

    /**
     * 死亡人数
     */
    @Excel(name = "死亡人数")
    @NotBlank(message = "缺失")
    private String dedDeathToll;

    /**
     * 死亡原因
     */
    @Excel(name = "死亡原因")
    @NotBlank(message = "缺失")
    private String dedCauseOfDeath;

    /**
     * 受伤人数
     */
    @Excel(name = "受伤人数")
    @NotBlank(message = "缺失")
    private String dedNumberOfInjury;

    /**
     * 安置人数
     */
    @Excel(name = "安置人数")
    @NotBlank(message = "缺失")
    private String dedNumberOfPlacement;

    /**
     * 救援力量投入
     */
    @Excel(name = "救援力量投入")
    @NotBlank(message = "缺失")
    private String dedRescueForceInput;

    /**
     * 医疗力量投入
     */
    @Excel(name = "医疗力量投入")
    @NotBlank(message = "缺失")
    private String dedInputOfMedicalForce;

    /**
     * 经济损失
     （亿元）
     */
    @Excel(name = "经济损失（亿元）")
    @NotNull(message = "缺失")
    private BigDecimal dedEconomicLosses;

    /**
     * 基础设施破坏情况
     */
    @Excel(name = "基础设施破坏情况")
    @NotBlank(message = "缺失")
    private String dedInfrastructureDamage;

    /**
     * 地质灾害情况
     */
    @Excel(name = "地质灾害情况")
    @NotBlank(message = "缺失")
    private String dedGeologicalHazardSituation;

    /**
     * 次生火灾
     */
    @Excel(name = "次生火灾")
    @NotBlank(message = "缺失")
    private String dedSecondaryFire;

    /**
     * 次生水灾
     */
    @Excel(name = "次生水灾")
    @NotBlank(message = "缺失")
    private String dedSecondaryFlood;

    /**
     * 次生爆炸
     */
    @Excel(name = "次生爆炸")
    @NotBlank(message = "缺失")
    private String dedSecondaryExplosion;

    /**
     * 危化品泄漏
     */
    @Excel(name = "危化品泄漏")
    @NotBlank(message = "缺失")
    private String dedDangerousChemicalLeak;

    /**
     * 震害现象描述
     */
    @Excel(name = "震害现象描述")
    @NotBlank(message = "缺失")
    private String dedDisasterDescription;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @NotBlank(message = "缺失")
    private String remark;


    /**
     * 附件
     */
    private List<AttachmentInfoEntity> enclosure;
    /**
     * 典型震害照片
     */
    private List<AttachmentInfoEntity> typicalEarthquakeDamagePicture;
    /**
     * 等震线烈度图
     */
    private List<AttachmentInfoEntity> isoseismalLineAndIntensityPicture;


    private Integer rowNum;
    private String errorMsg;
}
